pull-local: Explicitly unref variant rather than relying on floating
authorColin Walters <walters@verbum.org>
Sun, 24 Jul 2016 19:00:02 +0000 (15:00 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Thu, 28 Jul 2016 10:10:17 +0000 (10:10 +0000)
This shows up as a leak in valgrind; the callee isn't sinking.  In
general through the power of cleanup attributes we can do explicit
cleanup rather than relying on floating refs.

Closes: #410
Approved by: giuseppe

src/ostree/ot-builtin-pull-local.c

index 7fb6f03ab1cfbb13cccda3bc9a47c9b241c68aac..b6f649f69f8aa6cb106a3771f0c182fbabe8575e 100644 (file)
@@ -132,6 +132,7 @@ ostree_builtin_pull_local (int argc, char **argv, GCancellable *cancellable, GEr
     }
 
   { GVariantBuilder builder;
+    g_autoptr(GVariant) opts = NULL;
     g_auto(GLnxConsoleRef) console = { 0, };
 
     glnx_console_lock (&console);
@@ -157,8 +158,9 @@ ostree_builtin_pull_local (int argc, char **argv, GCancellable *cancellable, GEr
     if (console.is_tty)
       progress = ostree_async_progress_new_and_connect (ostree_repo_pull_default_console_progress_changed, &console);
 
+    opts = g_variant_ref_sink (g_variant_builder_end (&builder));
     if (!ostree_repo_pull_with_options (repo, src_repo_uri, 
-                                        g_variant_builder_end (&builder),
+                                        opts,
                                         progress,
                                         cancellable, error))
       goto out;